
use ggez::{Context, graphics, glam::Vec2};
use crate::liquid;

pub trait Mover {
    fn apply_force(&mut self, force: Vec2) -> ();
    fn update(&mut self, ctx: &mut Context) -> ();
    fn display(&self, ctx: &mut Context, canvas : &mut graphics::Canvas) -> ();
    fn get_location(& self) -> Vec2;
    fn get_mass(& self) -> f32;
    fn get_velocity(& self) -> Vec2;
    fn is_inside(& self, l: &liquid::Liquid) -> bool;
    fn drag(&mut self, l: &liquid::Liquid) -> ();
}